/*
 * @lc app=leetcode.cn id=9 lang=java
 *
 * [9] 回文数
 */

// @lc code=start
class Solution {
    // LeetCode 官方解法
    public boolean isPalindrome(int x) {
        if (x < 0 || (x % 10 == 0 && x != 0)) return false;
        int tmp = 0;
        while (x > tmp) {
            tmp = tmp * 10 + (x % 10);
            x /= 10;
        }
        return x == tmp || x == tmp / 10;
    }
}
// @lc code=end

// // 利用字符串来比较
// public boolean isPalindrome(int x) {
// String xStr = String.valueOf(x);
// if (xStr.startsWith("-"))
// return false;
// int len = xStr.length();
// if (len == 1)
// return true;
// for (int i = 0, j = len - 1; i < j; i++, j--) {
// if (xStr.charAt(i) != xStr.charAt(j))
// return false;
// }
// return true;
// }

// // 非字符串，整型数组形式
// public boolean isPalindrome(int x) {
// if (x < 0)
// return false;
// if (x < 10)
// return true;

// List<Integer> array = new ArrayList<>();
// for (int sum = x; sum > 0; sum /= 10) {
// array.add(sum % 10);
// }
// int size = array.size();
// for (int i = 0, j = size - 1; i < j; i++, j--) {
// if (array.get(i) != array.get(j))
// return false;
// }
// return true;
// }
// Accepted
// 11510/11510 cases passed (6 ms)
// Your runtime beats 47.02 % of java submissions
// Your memory usage beats 10.71 % of java submissions (41.1 MB)
